The invention relates generally to the field of systems to generate a signal representing the rate of change of another signal, and, more particularly, to the field of sampled data systems having circuitry to generate a rate-of-change signal characterizing certain data.
In general, when one desires to generate a first signal related to the rate of change of a second signal, it is necessary to calculate the difference in amplitude of the second signal at two different times and divide that difference by the interval between measurements of the second signal. Alternatively, one can take the instantaneous derivatives of the second signal, which is essentially the same calculation as above but with a very small interval. To do the first type of calculation, as evidenced by systems in the prior art, requires complicated multiplexing of the inputs and outputs of sample and hold circuits used to measure and store the amplitude of the second signal so as to properly apply their inputs to the second signal at different times and to properly apply their outputs to a difference calculating circuit in the right order. The latter calculation is often done using an RC network connected and having a time constant tuned to the particular characteristics of the second signal so as to act as a differentiator.
Both prior art approaches have disadvantages. The multiplexing approach is complicated and expensive because it uses many parts. Further, this approach is not well adapted to handling periodic or global discontinuities in the second signal. As a result, spikes can appear in the output signal when discontinuities appear in the input signal.
The differentiator approach is not well adapted to general applicability to a wide variety of systems involving different rates of change and different intervals between step-type or discontinuities in the signal to be measured. RC differentiators must be individually tuned for the system in which they are resident to have a time constant which is adapted for the particular characteristics of the signal to be measured. Thus, RC circuits are not well suited to broad use in a variety of systems. Further, RC circuits pass to the outputs all discontinuities which appear in the input. This causes noise in systems, crosstalk, and other related problems.
The invention has particular utility in sampled servo data disk drive controllers and other servo systems. More particularly, the invention has utility in circuitry for generating velocity signals from servo head data.
In modern disk drive systems, there are two modes of operation. In a first mode, called the track following mode, the servo system controlling the read/write head position tries to maintain the head over the center of a designated track of recorded data on the magnetic surface of the disk. The head position is maintained over track center through the use of servo data which is recorded either on the magnetic surface where the actual data is recorded and interspersed therewith, or on a separate magnetic surface dedicated to the storage of only servo data. The read/write head, or the servo head in the case of a separate dedicated servo surface, reads the servo data and outputs pulses which are used by the servo system to generate an error signal used to correct the position of the read/write head (the servo head is mechanically linked to the read/write head so that both move simultaneously). The designated track over which the read/write head position is maintained is the track which stores the desired data to be read or where data is to be written. The read/write head is moved to this track from whatever position the head previously held during the second mode called the seek mode.
In the seek mode, the servo system is given a track number to locate by the operating system or other software which does address translation from the address of the data to the actual track number on which it is stored. The servo system then causes power to be applied to the mechanism which moves the read/write and servo heads to cause the head positioning mechanism to move in the proper direction. Usually, the seek mode is performed so that a particular velocity profile is followed as the heads move from the starting position to the ending position over the desired track. This velocity profile usually involves maximum speed during the middle of the seek movement, and a gradual deceleration toward the end of the seek movement such that as the head approaches the center of the desired track, it is moving slowly enough that the servo mechanism can safely switch to the track following mode without having the heads overshoot the desired track.
The seek mode requires that the servo data coming from the read/write head or the servo head be interpreted to determine the velocity of movement as the heads move across the tracks of servo data (and actual data). In the prior art, velocity signals have been generated by differentiators comprised of resistor and capacitor combinations tuned to differentiate at the frequency of interest. The problems with this approach are multiple. First, the servo data signals are sampled analog signals which therefore have many sharp edges or transitions in them. These sharp transitions are converted by the differentiator into spikes which cause noise in the velocity signal. Second, the differentiators have to be tuned to the frequency of the systems in which they are used to cause them to act as differentiators. That is, the time constant of the RC circuit must be adjusted by adjusting the resistance and capacitance values so that the time constant is much shorter than the time it takes the signal being differentiated to make an appreciable change in level. For a circuit of general application, this is unacceptable since the manufacturer of an integrated circuit for generating the velocity signal used by the servo system does not want to have to change the circuit for every possible application in which the circuit might be used. Another goal of integrated circuit manufacturers is to minimize external components that must be used in conjunction with a particular chip. Thus, placing the RC circuit outside the chip would not be a desirable alternative.
One way of eliminating the spike problem with RC circuits is to use additional filtering to eliminate spikes and step discontinuities in either the input or the output. This additional filtering degrades the performance of the system by adding additional phase change and time delay which can cause oscillation. Further, it increases the part count and therefore the cost of the system.
Another approach which has been used in the prior art is to use three sample and hold amplifiers and a multiplexer to sample the servo data output signal at different times and subtract the sample values from each other. The sample and hold amplifiers rotate sampling the signal such that at any particular time two of the amplifiers are holding their sample values and are providing their outputs to a difference amplifier for subtraction. The third sample and hold amplifier is sampling the signal simultaneously with the processing of the two sample and hold amplifiers which are in the hold state. The rotating sample and hold states of the various amplifiers are arranged so that the most recent sample has subtracted from it the next most recent sample.
The problem with this approach is that it requires a complex multiplexing scheme to get the proper inputs switched to the right sample and hold amplifier and the proper outputs switched to the difference amplifier inputs. A further problem is that if there is any offset error in the sample and hold amplifiers, then these error will be alternately combined in different ways with alternating signs so as to affect the output in erratic fashion. This is unacceptable because offset errors are very serious in servo mechanisms for head positioning. The reason is that as the velocity nears zero close to track center of the desired track, the offset error becomes a larger percentage of the velocity signal. If the offset error exists, the situation is not good, and if the offset error varies erratically, the situation is worse because this erratic variation of the signal acts as a noise source.
Accordingly, a need has arisen for a simple, noiseless velocity generator which can meet the exacting needs of many different servo systems having different frequencies of operation.